package com.ost.kautilya.modeling;

import java.io.IOException;
import java.io.OutputStream;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.ost.kautilya.modeling.Model.ModelType;

public interface MProvider {
	public boolean isMultiClassSupported(ModelType type);
	
	public List<String> getAvailableParameterValues(int param);
	
	public Model createRawModel(ModelMetaData meta) throws Exception;

	public ModelConfiguration getDefaultConfiguration(ModelMetaData meta);
	
	public boolean isSupported(ModelType type);

	public Map<Integer, String> getDefaultParameters(ModelType type);
	
	public String getDataExportFormat();
	
	public void dumpData(Serializable data, String format, OutputStream out) throws IOException;
}
